﻿using System.Data;
using System.Web.Services;
using Customs.Components.SXXK;
using Customs.Components.SXXK.ThanhKhoan;
using Customs.Components.SXXK.TOKHAI;
namespace Customs.WS
{
    public class SXXKService : WebService
    {
        [WebMethod]
        public DataSet NguyenPhuLieu_GetDanhSach(string maHaiQuan, string maDoanhNghiep)
        {
            return NguyenPhuLieu.GetDanhSach(maHaiQuan, maDoanhNghiep);
        }

        //-----------------------------------------------------------------------------------------

        [WebMethod]
        public string[] NguyenPhuLieu_CheckExist(string maHaiQuan, string maDoanhNghiep, string[] danhSachMaNPL)
        {
            return NguyenPhuLieu.CheckExist(maHaiQuan, maDoanhNghiep, danhSachMaNPL);
        }

        //-----------------------------------------------------------------------------------------

        [WebMethod]
        public DataSet SanPham_GetDanhSach(string maHaiQuan, string maDoanhNghiep)
        {
            return SanPham.GetDanhSach(maHaiQuan, maDoanhNghiep);
        }

        //-----------------------------------------------------------------------------------------

        [WebMethod]
        public string[] SanPham_CheckExist(string maHaiQuan, string maDoanhNghiep, string[] danhSachMaSP)
        {
            return SanPham.CheckExist(maHaiQuan, maDoanhNghiep, danhSachMaSP);
        }
        //-----------------------------------------------------------------------------------------
        [WebMethod]
        public DataSet DinhMuc_GetDanhSach(string maHaiQuan, string maDoanhNghiep)
        {
            DataSet ds =ThongTinDinhMuc.GetDanhSach(maHaiQuan, maDoanhNghiep);
            DataSet dsDinhMuc =DinhMuc.GetDanhSach(maHaiQuan, maDoanhNghiep);
            DataTable table = new DataTable();
            foreach (DataColumn col in dsDinhMuc.Tables[0].Columns)
            {
                table.Columns.Add(col.ColumnName, col.DataType);
            }
            foreach (DataRow row in dsDinhMuc.Tables[0].Rows)
            {                
                table.ImportRow(row);
            }
            ds.Tables.Add(table);
            return ds;
        }

        [WebMethod]
        public DataSet DinhMuc_GetDanhSachOfSanPham(string maHaiQuan, string maDoanhNghiep,string []masp)
        {            
            DataSet ds = DinhMuc.GetDanhSachOfSanPham(maHaiQuan, maDoanhNghiep, masp[0]);
            for(int i=1;i<masp.Length;++i)
            {
                DataSet dsDinhMuc = DinhMuc.GetDanhSachOfSanPham(maHaiQuan, maDoanhNghiep, masp[i]);
                foreach (DataRow row in dsDinhMuc.Tables[0].Rows)
                {
                    ds.Tables[0].ImportRow(row);
                }
            }
            return ds;
        }

        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Lấy hồ sơ thanh lý
        /// </summary>
        /// <returns>danh sach các bảng kê</returns>
        /// st[0] la danh sach ho so thanh ly
        /// st[1] la danh sach to khai nhap
        /// st[2] la danh sach to khai xuat
        /// st[3] DanhSachNPLChuaThanhLy
        /// st[4] DanhSachNPLHuy
        /// st[5] DanhSachNPLNopThue 
        /// st[6] DanhSachNPLTaiXuat
        /// st[7] DanhSachNPLTamNopThue
        /// st[8] DanhSachNPLXuatGiaCong
        /// st[9] DanhSachNPLXuatNKD
        [WebMethod]        
        public string[] ThanhKhoan_GetDanhSach(string maHaiQuan, string maDoanhNghiep)
        {
           return HoSoThanhKhoan.GetHoSoThanhKhoanALL(maHaiQuan, maDoanhNghiep);
        }
        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Lấy hồ sơ thanh lý
        /// </summary>
        /// <returns>danh sach các bảng kê</returns>
        /// st[0] la danh sach ho so thanh ly
        /// st[1] la danh sach to khai nhap
        /// st[2] la danh sach to khai xuat
        /// st[3] DanhSachNPLChuaThanhLy
        /// st[4] DanhSachNPLHuy
        /// st[5] DanhSachNPLNopThue 
        /// st[6] DanhSachNPLTaiXuat
        /// st[7] DanhSachNPLTamNopThue
        /// st[8] DanhSachNPLXuatGiaCong
        /// st[9] DanhSachNPLXuatNKD
        [WebMethod]
        public string[] ThanhKhoan_GetDanhSachOfLanThanhLy(string maHaiQuan, string maDoanhNghiep, int lanthanhly)
        {
            return HoSoThanhKhoan.GetHoSoThanhKhoanOfLanThanhLyALL(maHaiQuan, maDoanhNghiep,lanthanhly);
        }

        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Lấy thong tin ve ton npl cua mot lan thanh ly
        /// </summary>
        /// <returns>danh sach các bảng chua thong tin ton ve luong va thue cua npl</returns>
        /// st[0] la danh sach Ton NPL Nhap chua luong npl con ton cua mot to khai nhap sau khi thanh ly
        /// st[1] la danh sach Ton NPL TaiXuat chua luong npl con ton cua to khai tai xuat sau khi thanh ly
        /// st[2] la danh sach Ton NPL Xuat chua luong npl con ton cua mot to khai xuat sp quy doi tu san phan sau khi thanh ly
        /// st[3] Thong Tin Ton NPL Nhap chua cac thog tin ve : 
            /// Luong
                /// DNPLNHAP chua thong tin ve luong nhap , ton cuoi cua mot npl theo tung to khai
                /// DNPLNHAP_TL Chứa thông tin lượng nhập khẩu, lượng tồn đầu, lượng tồn cuối của các
                    ///nguyên phụ liệu theo từng tờ khai nhập khẩu của từng lần thanh lý
            /// Thue
                /// DNPLNHAP_TL_CT chua thong tin chi tiet ve luog, ton dau ton cuoi cua mot npl theo tung to khai qua cua tung lan thanh ly
                /// DNPLNHAP_TL_TH Chứa thông tin chi tiết tiền thuế dư đầu kỳ, cuối kỳ của từng nguyên phụ
                    ///liệu trên từng tờ khai của từng lần thanh lý
        /// st[4] Thong Tin Ton NPL Tai Xuat
                /// DNPLTXUATChứa thông tin lượng tái xuất, lượng tồn cuối của các nguyên phụ liệu theo
                    ///từng tờ khai tái xuất nguyên phụ liệu.
                ///DNPLTXUAT_TL Chứa thông tin lượng tái xuất, lượng tồn đầu, lượng tồn cuối của các nguyên
                    ///phụ liệu theo từng tờ khai tái xuất nguyên phụ liệu của từng lần thanh lý
        /// st[5] Thong Tin Ton NPL Xuat 
                /// DNPLXUAT Chứa thông tin lượng xuất khẩu (qui đổi từ sản phẩm), lượng tồn cuối của
                    ///các nguyên phụ liệu theo từng tờ khai xuất khẩu.
                /// DNPLXUAT_TL Chứa thông tin lượng xuất khẩu (qui đổi từ sản phẩm), lượng tồn đầu, lượng
                    ///tồn cuối của các nguyên phụ liệu theo từng tờ khai xuất khẩu của từng lần thanh lý.      
        [WebMethod]
        public string[] ThanhKhoan_GetDanhSachTonNPLOfLanThanhLy(string maHaiQuan, string maDoanhNghiep, int lanthanhly)
        {
            return HoSoThanhKhoan.GetThongTinTonNPLOfLanThanhLy(maHaiQuan, maDoanhNghiep, lanthanhly);
        }

        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Lấy thong tin ve ton npl cua mot doanh nghiep
        /// </summary>
        /// <returns>danh sach các bảng chua thong tin ton ve luong va thue cua npl</returns>
        /// st[0] la danh sach Ton NPL Nhap chua luong npl con ton cua mot to khai nhap sau khi thanh ly
        /// st[1] la danh sach Ton NPL TaiXuat chua luong npl con ton cua to khai tai xuat sau khi thanh ly
        /// st[2] la danh sach Ton NPL Xuat chua luong npl con ton cua mot to khai xuat sp quy doi tu san phan sau khi thanh ly
        /// st[3] Thong Tin Ton NPL Nhap chua cac thog tin ve : 
        /// Luong
        /// DNPLNHAP chua thong tin ve luong nhap , ton cuoi cua mot npl theo tung to khai
        /// DNPLNHAP_TL Chứa thông tin lượng nhập khẩu, lượng tồn đầu, lượng tồn cuối của các
        ///nguyên phụ liệu theo từng tờ khai nhập khẩu của từng lần thanh lý
        /// Thue
        /// DNPLNHAP_TL_CT chua thong tin chi tiet ve luog, ton dau ton cuoi cua mot npl theo tung to khai qua cua tung lan thanh ly
        /// DNPLNHAP_TL_TH Chứa thông tin chi tiết tiền thuế dư đầu kỳ, cuối kỳ của từng nguyên phụ
        ///liệu trên từng tờ khai của từng lần thanh lý
        /// st[4] Thong Tin Ton NPL Tai Xuat
        /// DNPLTXUATChứa thông tin lượng tái xuất, lượng tồn cuối của các nguyên phụ liệu theo
        ///từng tờ khai tái xuất nguyên phụ liệu.
        ///DNPLTXUAT_TL Chứa thông tin lượng tái xuất, lượng tồn đầu, lượng tồn cuối của các nguyên
        ///phụ liệu theo từng tờ khai tái xuất nguyên phụ liệu của từng lần thanh lý
        /// st[5] Thong Tin Ton NPL Xuat 
        /// DNPLXUAT Chứa thông tin lượng xuất khẩu (qui đổi từ sản phẩm), lượng tồn cuối của
        ///các nguyên phụ liệu theo từng tờ khai xuất khẩu.
        /// DNPLXUAT_TL Chứa thông tin lượng xuất khẩu (qui đổi từ sản phẩm), lượng tồn đầu, lượng
        ///tồn cuối của các nguyên phụ liệu theo từng tờ khai xuất khẩu của từng lần thanh lý.      
        [WebMethod]
        public string[] ThanhKhoan_GetDanhSachTonNPL(string maHaiQuan, string maDoanhNghiep)
        {
            return HoSoThanhKhoan.GetThongTinTonNPL(maHaiQuan, maDoanhNghiep);
        }

        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Lấy thong tin ve ton npl cua mot doanh nghiep
        /// </summary>
        /// st[0] la Thong tin dieu chinh cua to khai
        /// st[1] la thong tin hang dieu chinh cua to khai
        /// st[2] la Thong tin hang dieu chinh chi tiet cua to khai
        [WebMethod]
        public string[] DieuChinh_GetDanhSachDieuChinh(string maHaiQuan, string maDoanhNghiep)
        {
            return DieuChinhToKhai.WSGetDanhSachDieuChinh(maHaiQuan, maDoanhNghiep);
        }
        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Lấy thong tin ve dieu chinh cua to khai cua mot doanh nghiep
        /// </summary>
        /// st[0] la Thong tin dieu chinh cua to khai
        /// st[1] la thong tin hang dieu chinh cua to khai
        /// st[2] la Thong tin hang dieu chinh chi tiet cua to khai
        [WebMethod]
        public string[] DieuChinh_GetDanhSachDieuChinhOfToKhai(string maHaiQuan, string maLoaiHinh, int soTK, short namdk)
        {
            return DieuChinhToKhai.WSGetDanhSachDieuChinhOfToKhai(maHaiQuan, maLoaiHinh,soTK,namdk);
        }    
    }
}